package com.lwx.sort;

public class QuickSortMain {
    static char c;

    public static void main(String[] args) throws Exception {
        int a[] = { 57, 68, 59, 52, 72, 28, 96, 33, 24 };
        quickSort(a, 0, a.length - 1);
        for (int i : a) {
            System.out.print(i + "  ");
        }
    }

    public static void quickSort(int a[], int start, int end) {
        int i = start;
        int j = end;
        if ((a == null) || (a.length == 0))
            return;
        while (i < j) {
            while (i < j && a[i] <= a[j]){/* 以数组start下标的数据为key，右侧扫描 */
                j--;
            }
            if (i < j){/* 右侧扫描，找出第一个比key小的，交换位置 */
                int temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
            while (i < j && a[i] < a[j]){/* 左侧扫描（此时a[j]中存储着key值） */
                i++;
            }
            if (i < j){ /* 找出第一个比key大的，交换位置 */
                int temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
        if (i - start > 1) {
            quickSort(a, start, i - 1); /* 递归调用，把key前面的完成排序 */
        }
        if (end - i > 1) {
            quickSort(a, i + 1, end);/* 递归调用，把key后面的完成排序 */
        }
    }


}
